package com.design.template;

import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Async;

/**
 * 模板方法抽像类
 * 模板方法就是将共同行为不同点抽像为模板。
 *
 * @author Zee
 * @version 1.0
 * @date 2021/8/30
 */
@Slf4j
public abstract class AbstractTemplate {
    /**
     * 共同的行为封装
     */
    public void execute() {
        //执行不同的方法在各子类中自行实现
        temp1Execute();
        temp2Execute();
        temp3Execute();
    }

    /**
     * 不同的方法1
     */
    protected abstract void temp1Execute();

    /**
     * 不同的方法2
     */
    protected abstract void temp2Execute();

    /**
     * 不同的方法3
     */
    protected abstract void temp3Execute();
}
